Circuit board manufacturers design motherboards or other circuit boards that will support various combinations of hardware devices, independent of any specific model or chipset vendor. For example, a manufacturer of computer system motherboards may include circuitry that will generally support network components, but the manufacturer does not design the motherboards for specific network components from particular vendors or provide firmware to support vendor-specific components. Each particular vendor will each receive the original motherboard configuration from the manufacturer and then reconfigure the motherboard for their specific proprietary components.
Computing systems often utilize firmware that is stored in a non-volatile memory device, such as a read-only memory (“ROM”) device or a non-volatile random access memory (“NVRAM”) device. The firmware provides program code for performing power-on self tests, booting, and for providing support to the operating system and various hardware devices within the computer system. As with the original computer system motherboard, the firmware that supports the original motherboard is not designed to support specific hardware from a particular vendor. When hardware devices such as chipsets are added or removed from a computer system by a vendor or other party, then one or more program modules, or “option ROMs,” within the firmware often must be added or removed to provide support for the vendor-specific device. A customized firmware image is created by the firmware developer and provided to the vendor for flashing into a memory device and distribution with the customized motherboard. This firmware customization process consumes time and resources.
It is with respect to these considerations and others that the various embodiments of the invention have been made.